1.1 Messages
Les processeurs sont reliés en chaîne par des portes série:
hardware <->calcul<->radio<->UI ... ou plus, un processeur situé entre deux processeurs doit donc utiliser deux portes série.
Un message émis par un programme a un code numérique, qui définit sa destination et un contenu sous la forme Json.
Un message peut parcourir plusieurs processeurs avant d'arriver à celui qui peut le traiter
Le protocole (voir trf3.py) comporte une validation et admet une longueur indéterminée. Les messages erronés sont perdus .
Du point de vue hardware c'est une communication série, 8 bits sans parité , par UART ou câble USB.
La vitesse peut être importante (ceci sont des vitesses qui ont été testées entre deux pico):
Bauds | durée/byte |
---|---|
9600 | 1,042 ms |
115200 | 86.8µs |
460800 | 21.7 µs |
921600 | 10 µs |
La durée d'un message en mode vol doit être limitée à 10ms . En mode 'sol' cette durée n'a pas d'importance, mais il faudra mesurer la proportion des messages perdus et simplement insérer des pauses dans un message long . Taille des buffers : par défaut 256, max 32766.
Chaque message est créé par un traitement , il comporte un code et des données en format Json.
Les codes sont classés par tranche ce qui définit le processeur destinataire et finalement la fonction qui traite le message.
Le module trf3.py fait la distribution dans chaque processeur:
Codes :
n = affecté en émission et réception
?n = réservé
#todo à remettre à jour au fur et à mesure de la réalisation des programmes
Code | Description | Origine |
---|---|---|
0-20 | Destiné aux fonctions hardware S | |
?1 | demande de power off | C .28 |
?2 | périodicité en ms 0 = au coup par coup (pour le simulateur) |
|
4 | LCD :liste de lignes à afficher | |
5 | demande d'une mesure de l'inclinomètre | |
2040 | Destiné aux fonctions de calcul C | |
21 | mesures hardware brutes | S |
22 | mesures hardware simulateur | |
23 | boutons trim simulateur | |
?25 | transfert modèle model.py | |
?26 | transfert paramètres model.mdp | |
27 | le serveur demande des données | |
?28 | demande de cloture | |
40-50 | Destiné aux fonctions radio R | |
50-60 | Destiné à UI | |
51 | dictée avec copie au lcd | |
52 | dictée sans copie au lcd | |
?53 | commande menu | |
?56 | mesure de l'inclinomètre | |
?54 | ??statut (nom de phase + certains sw lcd | |
60..100 | Destiné à UI (Laptop) | |
60 | réponse à la demande de l'interface visuel |
|